package admin_advert_api

import (
	"blog_go/models"
	"blog_go/models/res"
	"blog_go/service/common"
	"github.com/gin-gonic/gin"
	"github.com/jinzhu/copier"
	"github.com/sirupsen/logrus"
	"time"
)

type AdvertListRsp struct {
	ID        uint      `json:"id"`         // 主键id
	CreatedAt time.Time `json:"created_at"` // 创建时间 默认datetime(3)
	UpdatedAt time.Time `json:"updated_at"` // 修改时间 默认datetime(3)
	Title     string    `json:"title"`      // 显示的标题
	Href      string    `json:"href"`       // 跳转的链接
	Image     string    `json:"image"`      // 图片
	IsShow    bool      `json:"is_show"`    // 是否展示 默认tinyint(1)
}

// AdvertList 广告列表
// @Tags 广告管理
// @Summary 广告列表
// @Description 广告列表
// @Param params query models.PageInfo true "入参"
// @Param token header string true "token"
// @Router /api/admin/advert/list [get]
// @Produce json
// @Success 200 {object} res.Response{data=res.ListResponse[[]AdvertListRsp]}
func (AdminAdvertApi) AdvertList(c *gin.Context) {
	page := models.DefaultPageInfo()
	if err := c.ShouldBindQuery(&page); err != nil {
		logrus.Error(err)
		panic(err)
	}
	// 查询条件为false的时候,gorm会视为没有条件 需要这么写db.Where(gorm.Expr("is_active = ?", false)).Find(&inactiveUsers)
	var advert models.AdvertModel = models.AdvertModel{IsShow: false}
	list, count, _ := common.ComList(advert, page)
	var rspList []AdvertListRsp
	for _, model := range list {
		var rsp AdvertListRsp
		copier.Copy(&rsp, &model)
		rspList = append(rspList, rsp)
	}
	res.OkWithList(rspList, count, c)
}
